package com.woniuxy.education.utils;

import java.util.*;

/**
 * 字符串去重排序,
 * 方法一 主要用于题库增加题目
 * 方法二 收藏题目
 * 方法三 取消收藏
 * 方法四 已做的题目去重
 */
public class StringReorder {
    //方法一
    //str2为数据库查出来的
    public  static  String StringSort(String str1,String str2){
        if(str2.length()==0){
            return str1;
        }
        String str=str1+","+str2;
        // 正则“,”切割字符串
        String[] splitArrays = str.split(",");

        List<String> list = Arrays.asList(splitArrays);
        // 排序 当然闲的慌的话，可以写个冒泡巴拉巴拉的程序
        Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return  Integer.parseInt(o1)-Integer.parseInt(o2);
            }
        });
        // 去重
        // 新建存放最终结果的list
        List<String> resultList = new ArrayList<String>();
        // 遍历
        for (String string : list) {
            if (resultList.isEmpty() || !resultList.contains(string)) {
                // 结果集合为空或不含有String 添加
                resultList.add(string);
            }
        }
        //list 转 字符串
        StringBuilder sbBuilder = new StringBuilder();
        for (String string : resultList) {
            sbBuilder.append(string+",");
        }
        //去除字符串最后的一个 “，”
        String substring = sbBuilder.toString().substring(0, sbBuilder.length()-1);
        return substring;
    }
    //方法二
    public  static  String StringSort(int titleid,String str1){
        if(str1.length()==0){
            return String.valueOf(titleid);
        }
        String str2=String.valueOf(titleid)+","+str1;
        // 正则“,”切割字符串
        String[] splitArrays = str2.split(",");

        List<String> list = Arrays.asList(splitArrays);
        // 排序 当然闲的慌的话，可以写个冒泡巴拉巴拉的程序
        Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return  Integer.parseInt(o1)-Integer.parseInt(o2);
            }
        });
        //list 转 字符串
        StringBuilder sbBuilder = new StringBuilder();
        for (String string : list) {
            sbBuilder.append(string+",");
        }
        //去除字符串最后的一个 “，”
        String substring = sbBuilder.toString().substring(0, sbBuilder.length()-1);
        return substring;
    }
    //方法三
    public  static  String cancelcollect(int titleid,String str2){
        // 正则“,”切割字符串
        String[] splitArrays = str2.split(",");
        //如果只有一个,直接返回
        if(splitArrays.length==1){
            str2="";
            return str2;
        }
        List<String> strArr = new ArrayList<>(Arrays.asList(splitArrays));
        //删除
        for (String item : strArr) {
            if (item.equals(titleid)||Integer.parseInt(item)==titleid) {
                strArr.remove(item);
                break;
            }
        }
        //list 转 字符串
        StringBuilder sbBuilder = new StringBuilder();
        for (String string : strArr) {
            sbBuilder.append(string+",");
        }
        //去除字符串最后的一个 “，”
        String substring = sbBuilder.toString().substring(0, sbBuilder.length()-1);
        System.out.println(substring);
        return substring;
    }

    //方法四
    public  static  List<Integer> outIsDo(String title_isdo,List<Integer> listids){
        // 正则“,”切割字符串
        String[] splitArrays = title_isdo.split(",");
        //如果只有一个,直接返回
        if(splitArrays.length==0){
            return listids;
        }
        List<String> strArr = new ArrayList<>(Arrays.asList(splitArrays));
        //删除
        for(int i=0;i<strArr.size();i++){
            listids.remove((Integer) Integer.parseInt(strArr.get(i)));
        }
        return listids;
    }
}
